#ifndef _PROTOTYPE_HPP_
#define _PROTOTYPE_HPP_

#include "AllegroResource.hpp"
#include <string>

//////////////////////////////////////////////////////////////////////////
//
// Derive de cette classe abstraite pour chaque prototype
//
//////////////////////////////////////////////////////////////////////////

class Prototype
{
public:
    Prototype(std::string asName): msName(asName) {}
    virtual ~Prototype() {}
    std::string GetName() const { return msName; }

public:
    virtual void Run() = 0;
    virtual void Render(BITMAP* aBuffer) = 0;

public:
    virtual void Init() = 0;
    virtual void DeInit() = 0;

private:
    std::string msName;
};

#endif // _PROTOTYPE_HPP_